| <class 'django.core.exceptions.ImproperlyConfigured'> | Python 2.7.18: /usr/bin/python2.7 Fri Oct 31 15:21:46 2025 | 
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
| /home/boodler/lib/python/fcgi.py in run(self=<fcgi.Request object>) | 
| 578         """Runs the handler, flushes the streams, and ends the request.""" | 
| 579         try: | 
| =>  580             protocolStatus, appStatus = self.server.handler(self) | 
| 581         except: | 
| 582             traceback.print_exc(file=self.stderr) | 
| protocolStatus undefined, appStatus undefined, self = <fcgi.Request object>, self.server = <fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <fcgi.WSGIServer object>> | 
| /home/boodler/lib/python/fcgi.py in handler(self=<fcgi.WSGIServer object>, req=<fcgi.Request object>) | 
| 1264         try: | 
| 1265             try: | 
| => 1266                 result = self.application(environ, start_response) | 
| 1267                 try: | 
| 1268                     for data in result: | 
| result = None, self = <fcgi.WSGIServer object>, self.application = <django.core.handlers.wsgi.WSGIHandler object>, environ = {'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/home/boodler/boodler.org', 'CONTEXT_PREFIX': '', 'DH_USER': 'boodler', 'DOCUMENT_ROOT': '/home/boodler/boodler.org', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CACHE_CONTROL': 'max-age=259200', 'HTTP_CONNECTION': 'close', ...}, start_response = <function start_response> | 
| /home/boodler/lib/python/django/core/handlers/wsgi.py in __call__(self=<django.core.handlers.wsgi.WSGIHandler object>, environ={'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/home/boodler/boodler.org', 'CONTEXT_PREFIX': '', 'DH_USER': 'boodler', 'DOCUMENT_ROOT': '/home/boodler/boodler.org', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CACHE_CONTROL': 'max-age=259200', 'HTTP_CONNECTION': 'close', ...}, start_response=<function start_response>) | 
| 228             # Check that middleware is still uninitialised. | 
| 229             if self._request_middleware is None: | 
| =>  230                 self.load_middleware() | 
| 231             self.initLock.release() | 
| 232 | 
| self = <django.core.handlers.wsgi.WSGIHandler object>, self.load_middleware = <bound method WSGIHandler.load_middleware of <django.core.handlers.wsgi.WSGIHandler object>> | 
| /home/boodler/lib/python/django/core/handlers/base.py in load_middleware(self=<django.core.handlers.wsgi.WSGIHandler object>) | 
| 38             mw_module, mw_classname = middleware_path[:dot], middleware_path[dot+1:] | 
| 39             try: | 
| =>   40                 mod = import_module(mw_module) | 
| 41             except ImportError, e: | 
| 42                 raise exceptions.ImproperlyConfigured, 'Error importing middleware %s: "%s"' % (mw_module, e) | 
| mod undefined, global import_module = <function import_module>, mw_module = 'sphene.community.middleware' | 
| /home/boodler/lib/python/django/utils/importlib.py in import_module(name='sphene.community.middleware', package=None) | 
| 32                 break | 
| 33             level += 1 | 
| 34         name = _resolve_name(name[level:], package, level) | 
| =>   35     __import__(name) | 
| 36     return sys.modules[name] | 
| builtin __import__ = <built-in function __import__>, name = 'sphene.community.middleware' | 
| /home/boodler/lib/python/sphene/community/__init__.py in <module>() | 
| 5 from django import forms as djangoforms | 
| 6 from django.conf import settings | 
| =>    7 from sphene.community.forms import EditProfileForm, Separator | 
| 8 from sphene.community.signals import profile_edit_init_form, profile_edit_save_form, profile_display | 
| 9 from sphene.community.sphutils import get_sph_setting | 
| sphene undefined, EditProfileForm undefined, Separator undefined | 
| /home/boodler/lib/python/sphene/community/forms.py in <module>() | 
| 48 | 
| 49 | 
| =>   50 from django.contrib.auth.models import User | 
| 51 from django.db.models import signals, get_apps, get_models | 
| 52 from django.contrib.contenttypes.models import ContentType | 
| django undefined, User undefined | 
| /home/boodler/lib/python/django/contrib/auth/models.py in <module>() | 
| 4 from django.contrib import auth | 
| 5 from django.core.exceptions import ImproperlyConfigured | 
| =>    6 from django.db import models | 
| 7 from django.db.models.manager import EmptyManager | 
| 8 from django.contrib.contenttypes.models import ContentType | 
| django undefined, models undefined | 
| /home/boodler/lib/python/django/db/__init__.py in <module>() | 
| 39                 raise # If there's some other error, this must be an error in Django itself. | 
| 40 | 
| =>   41 backend = load_backend(settings.DATABASE_ENGINE) | 
| 42 | 
| 43 # `connection`, `DatabaseError` and `IntegrityError` are convenient aliases | 
| backend undefined, load_backend = None, settings = None, settings.DATABASE_ENGINE undefined | 
| /home/boodler/lib/python/django/db/__init__.py in load_backend(backend_name='mysql') | 
| 15         # Most of the time, the database backend will be one of the official | 
| 16         # backends that ships with Django, so look there first. | 
| =>   17         return import_module('.base', 'django.db.backends.%s' % backend_name) | 
| 18     except ImportError, e: | 
| 19         # If the import failed, we might be looking for a database backend | 
| global import_module = None, backend_name = 'mysql' | 
| /home/boodler/lib/python/django/utils/importlib.py in import_module(name='django.db.backends.mysql.base', package='django.db.backends.mysql') | 
| 32                 break | 
| 33             level += 1 | 
| 34         name = _resolve_name(name[level:], package, level) | 
| =>   35     __import__(name) | 
| 36     return sys.modules[name] | 
| builtin __import__ = <built-in function __import__>, name = 'django.db.backends.mysql.base' | 
| /home/boodler/lib/python/django/db/backends/mysql/base.py in <module>() | 
| 11 except ImportError, e: | 
| 12     from django.core.exceptions import ImproperlyConfigured | 
| =>   13     raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) | 
| 14 | 
| 15 # We want version (1, 2, 1, 'final', 2) or later. We can't just use | 
| ImproperlyConfigured = None, e = None | 
<class 'django.core.exceptions.ImproperlyConfigured'>: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory
      args =
('Error loading MySQLdb module: libmysqlclient.so....pen shared object file: No such file or directory',)
      message =
'Error loading MySQLdb module: libmysqlclient.so....pen shared object file: No such file or directory'